public class Code1395 {

    public static void main(String[] args) {
        Code1395 main = new Code1395();
//        main.numTeams(new int[]{2, 5, 3, 4, 1});
//        int i = main.numTeams(new int[]{1, 2, 3, 4});
//        int i = main.numTeams(new int[]{2,1,3});
        int i = main.numTeams(new int[]{461,846,870,205,922,959,569,357,826,235,712,168,305,834,971,187,156,466,183,459,551,443,835,987,224,12,817,536,302,509,106,87,442,499,369,60,798,658,273,166,816,719,389,993,726,825,456,807,73,112,859,229,208,759,996,378,184,189,903,53,467,529,634,8,979,335,535,502,555,503,883,867,437,422,588,150,4,507,269,248,68,960,380,377,101,874,905,431,761,593,769,705,638});
        System.out.println("输出 " + i);
    }

    /**
     *  n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。
     * <p>
     * 每 3 个士兵可以组成一个作战单位，分组规则如下：
     * <p>
     * 从队伍中选出下标分别为 i、j、k 的 3 名士兵，他们的评分分别为 rating[i]、rating[j]、rating[k]
     * 作战单位需满足： rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ，其中  0 <= i < j < k < n
     * 请你返回按上述条件可以组建的作战单位数量。每个士兵都可以是多个作战单位的一部分。
     * 输入：rating = [2,5,3,4,1]
     * 输出：3
     * 解释：我们可以组建三个作战单位 (2,3,4)、(5,4,1)、(5,3,1) 。
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/count-number-of-teams
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     */
    public int numTeams(int[] rating) {
        int len = rating.length;
        int i = 0, j = 0, k = 0;
        int result = 0;
        while (len > 1) {
            i = rating[rating.length - len]; // 2
            int l = rating.length - len;
            for (; l < rating.length; l++) {
                j = rating[l]; // 5
                int m = l + 1;
                for (; m < rating.length; m++) {
                    k = rating[m];// 3
//                    System.out.println(String.format(" %d , %d <,%d ", i, j, k));
//                    System.out.println("--");
                    if (i < j && j < k) {
//                        System.out.println(String.format("找到一组 %d < %d < %d ", i, j, k));
                        result++;
                    } else if (i > j && j > k) {
//                        System.out.println(String.format("找到一组 %d > %d >%d ", i, j, k));
                        result++;
                    }

                }

            }
            len--;
        }
        return result;
    }
}
